MySQL IF THEN 在 WHERE 子句中
全部标签 我正在使用此查询获取{名称以小写“a”开头的客户}的所有员工:SELECT*FROMemployeesWHEREclient_idIN(SELECTidFROMclientsWHEREnameLIKE'a%')employees.client_id列是一个整数,带有INDEXclient_id(index_id)。子查询应该恕我直言返回一个id-s列表,然后在WHERE子句中使用。当我EXPLAIN查询时,主要查询不使用索引(type:ALL)。但是当我EXPLAIN从子查询中获取的列表(例如SELECT...WHEREclient_idIN(121,184,501)),EXPLAIN
我希望按如下方式SUM查询的COUNT。此查询正确返回每一行的计数(1),但不确定如何将它们全部相加。SELECTCOUNT(*),jss_orders_headers.*FROMjss_orders_headersLEFTJOINjss_orders_extrafieldsONjss_orders_headers.orderID=jss_orders_extrafields.orderIDANDjss_orders_extrafields.extraFieldID=5GROUPBYjss_orders_headers.orderIDORDERBYjss_orders_headers.
我希望能够做到这一点:SELECTdept.id,(invoices.col1+invoices.col2+invoices.col3)assumTotalFROMdeptINNERJOINinvoicesONinvoices.id_dept=dept.idWHEREsumTotal>10000但是我收到了关于使用“sumTotal”的未知专栏。这可能吗? 最佳答案 使用HAVING:SELECTdept.id,(invoices.col1+invoices.col2+invoices.col3)assumTotalFROMdept
考虑以下几点:eventTypes表有163行。事件有43,000行。SELECTevents.eventTypeID,eventTypes.eventTypeNameFROMeventsLEFTJOINeventTypesONevents.eventTypeID=eventTypes.eventTypeID这将返回163行。但是,如果我添加“WHEREevents.eventID>=0”SELECTevents.eventTypeID,eventTypes.eventTypeNameFROMeventsLEFTJOINeventTypesONevents.eventTypeID=ev
由于某些原因,在使用PhpMyAdmin时返回90行:SELECTCOUNT(*)FROMle_wp_postsWHEREpost_contentLIKE'%Â%'但以下仅更新3行:UPDATEle_wp_postsSETpost_content=REPLACE(post_content,'Â','')WHEREpost_contentLIKE'%Â%'我也尝试过省略UPDATE语句中的WHERE子句。有什么明显的原因让我忽略了导致这个问题的原因吗?或者我可以采取哪些步骤进一步调查原因?我的SQL不是最好的。 最佳答案 我做了以下测
我在转换以下SQL查询以使用Laravel的查询构建器时遇到了很多麻烦。SELECT*FROMgiftsJOINgiftcategoryONgifts.id=giftcategory.giftidJOINgiftoccasionsONgifts.id=giftoccasions.giftidJOINgiftrelationshipONgifts.id=giftrelationship.giftidWHERE(gifts.gender='any'ORgifts.gender='male')ANDgiftoccasions.occasionid='2'AND(giftcategory.ca
我有一个orderby子句,如下所示:(user_id?),ratingDESC,title在哪里?替换为当前用户的ID。在postgresql上,这给了我正在寻找的顺序,即按当前用户,然后是最高评级,然后是标题(按字母顺序)。但是在MySQL上我得到一个不清楚的顺序当前用户既不是第一个也不是最后一个,也不是按等级或标题。我唯一的跨数据库兼容性选项是用CASEWHEN..THEN..ELSE..END语句替换这个快速而肮脏的bool表达式吗?编辑:感谢大家的帮助,正如Chaos和ChadBirch所指出的那样,问题出在别处(具体来说,我正在使用上述查询的结果作为下一个查询的输入-然后对
我有一个包含我的产品的表格,我正在尝试编写一个页面,从数据库中提取具有特定颜色的手镯。所以这就是我现在拥有的(在php中):$query="SELECT*FROMproductsWHERE(products.colorsLIKE'%black%')";但我只想选择列“category”的值等于“bracelet”的行。我尝试了一些不同的方法,但我不断收到警告和错误。感谢您提供的任何帮助,谢谢! 最佳答案 $query="SELECT*FROMproductsWHEREproducts.colorsLIKE'%black%'ANDpr
我正在使用Mysql,但在尝试从SELECT查询中获取结果时遇到了困难。我有3张table。第一表段、第二表段成员、第三表段成员状态(本表数据为静态)。从部分中选择*;|section_id|title|description|section_ownerid|-------------------------------------------------------|1|title1|desc1|100||2|title2|desc2|100||3|title3|desc3|100||4|title4|desc4|100||5|title5|desc5|100||6|title6|d
例如我在表EMPLOYEE中有:(code,name)(1,'Jimmy')(2,'Albert')(3,'Michelle')(4,'Felix')如果您这样做:(从EMPLOYEE中选择*)您将获得:(1,'Jimmy')(2,'Albert')(3,'Michelle')(4,'Felix')如果您这样做:(select*fromEMPLOYEEwherecodein(1,3,2,4)您将得到:(1,'Jimmy')(2,'Albert')(3,'Michelle')(4,'Felix')如何按原样在IN子句中按CSV值的顺序获取它?(1,'Jimmy')(3,'Michelle